The present invention relates generally to apparatus and methods for resource management in a client/server environment and more specifically to an apparatus and method for managing resources on the server and network in response to monitored activity on the client.
Computer communication networks typically include one or more nodes termed server nodes and one or more nodes termed client nodes. A server provides a service to a client upon receiving a request from the client. An example of a service is the execution, on the server, of an application with which the user of the client wants to interact.
Once a client has established a connection with the server, the server allocates certain necessary server resources to that client to perform the requested services. For example, these server resources may include resources necessary to maintain the connection between the client and resources and resources necessary to execute the requested application. Once these resources are allocated to this client, they are not available for another client that subsequently connects to the server.
A problem that arises is that the server continues to allocate these resources even though the user is inactive on the client. This typically occurs with application where the server is continually updating the client with information, xe2x80x9cserver pushxe2x80x9d applications, and thus is neither monitoring nor detecting client inactivity. Another problem is that if the server does monitor client inactivity and terminates communication resources in response to this server monitoring, the server may not be able to easily reestablish communication. For example, firewall security will typically prohibit the server from reestablishing communication, and thus the client will have to reestablish communication. Typically it will appear to the user of the client that he is establishing a new connection and repeating the process over from the beginning. These problems create a need for managing server resources in response to the actual user activity level on the client.
The present invention addresses this need.
The invention relates to an apparatus and method for monitoring, by a client node, the activity level of a user on the client and managing, by a server, the network resources, including server resources, in response to the level of activity identified by the client. This combination allows the server to manage its resources in the most efficient manner while at the same time creating a substantially seamless interaction with the user on the client, in response to the user""s activity level.
In one embodiment the invention relates to a method for managing network resources. The method includes the steps of allocating on a server at least one server resource to a client; monitoring activity of a user by the client to detect a change in the level of activity; transmitting to the server from the client a notification of change of activity; and managing the at least one allocated server resource on the server in response to the notification. In one embodiment the notification of change of activity is in response to user inactivity. In another embodiment the method further includes the step of storing state of the at least one allocated server resource, when the notification is received, for resumption at substantially the same state in response to a subsequent notification of change of activity. In another embodiment the method further includes the steps of terminating transmission of output data to the client associated with an application executing on the server in response to the notification; storing the output data in a storage area following the notification; and transmitting the stored output data to said client in response to a subsequent notification of change of activity. In yet another embodiment the method includes the step of reducing the at least one allocated server resource on the server in response to the notification.
In another embodiment the invention relates to a system for managing network resources. The system includes a server including a resource manager and a server communication link in communication with the resource manager, and a client in communication with the server. The client includes an activity monitor and a client communication link in communication with the activity monitor. The client activity monitor detects a level of activity of a user on the client and in response to a change in the activity transmits over the communication link to the server a notification of change of activity. The server resource manager, in response to the notification, manages server resource associated with the client. In one embodiment the notification of change of activity represents user inactivity. In another embodiment the server further includes a server first storage buffer in communication with the resource manager. The server stores output data generated by an application in the first storage buffer in response to the notification. In another embodiment the server transmits the output data, stored in the first storage buffer, to the client in response to a subsequent notification of change of activity. In yet another embodiment the server further includes a server second storage buffer in communication with the resource manager. The server stores the state of the allocated resource, when the notification is received, for resumption at substantially the same state in response to a subsequent notification of change of activity. In still yet another embodiment the invention relates to a client for monitoring user activity. The client includes an activity monitor and a communication link in communication with the activity monitor. The client activity monitor detects a level of activity of a user on the client and in response to a change in the level of activity transmits, over the communication link to an external server, a notification of change of activity. In one embodiment the notification of change of activity represents user inactivity. In another embodiment the client communication link initiates reestablishing communication with the server in response to the notification. In still yet another embodiment the activity monitor further includes a notification generator; an inactivity timer in communication with the notification generator; and user detection I/O in communication with the inactivity timer and the notification generator. The user detection I/O detects lack of activity of a user on the client and transmits the result of the detection to the inactivity timer. In response to the result, the inactivity timer starts counting until it is either reset by detection of activity by the user I/O or counts to a predetermined value. The notification generator, in response to the inactivity timer reaching the predetermined value transmits, over the communication link to an external server, a notification of change of activity.
In still yet another embodiment the invention related to a server for managing resources allocated to an external client The server includes a resource manager and a communication link in communication with the resource manager. The server resource manager, in response to a notification of change of activity from an external client received over the communication link, manages the server resource associated with the external client. In anther embodiment the notification of change of activity represents user inactivity. In another embodiment the server further includes a first storage buffer in communication with the resource manager. The server stores output data generated by an application in the first storage buffer in response to the notification.